#ifndef POISSON_CLASS_H_INCLUDED
#define POISSON_CLASS_H_INCLUDED

#include <vector>

class Poisson {

 public:
  Poisson(double L, int N, double z0, double x0=0) : L_(L),  N_(N), z0_(z0), x0_(x0), h_(0), zn_(0) {};
  ~Poisson();
  double Funct(double x);
  void Calc();

 private:

  double L_;      // Length of sample
  int    N_;      // Number of steps
  double z0_;     // z0 = y'(x0 + L)
  double x0_;     // x0
  double h_;      // Length of step
  double zn_;     // Derivative

  std::vector<double> psi_; //psi(x)
  std::vector<double> delta_;

  void Write_file(const std::vector <double> &psi, double h);
};

#endif // POISSON_CLASS_H_INCLUDED
